Field of the Invention
The present disclosure relates generally to data storage systems, and more particularly to a solid state based storage system and methods of use and operation.
Description of Related Art
FIG. 1 shows a traditional architecture for Solid State Drives. It encompasses a front end host bus interface such as PCIe/Serial ATA(SATA)/Serial Attached SCSI(SAS) etc, coupled with the following elements: a micro-processor subsystem, host addressable register configuration space, a DRAM controller for caching data to and from the host. The DRAM controller interfaces to DRAM. All the elements connected to the controller will get their data eventually serialized when it has to move from one element to another using a store and forward scheme, utilizing the DRAM. NAND Flash controllers, Direct Memory Access(DMA) Engines to move data to and from the host to either DRAM or the Flash controller, and NAND Flash Memory.
Solid State Drives (SSDs) typically present themselves to an OS (operating system) such as Windows/Linux/Unix as a block storage device. Once the operating system recognizes the drive it communicates to the SSD through a driver provided by, for example, the SSD vendor or utilizing well known protocols such as Advanced Host Control Interface (AHCI). The host OS formats the drive into a contiguous Logical Block Address (LBA) space depending on the advertised capacity of the drive. LBA data transfer size is usually either 512 bytes or multiples of 512 bytes such as 1 Kbytes, 2 Kbytes or 4 Kbytes. Once the formatting is done the host OS creates a file system and stores data on the drive and retrieves it using the Logical Block Addressing mechanism. It primarily uses the following basic commands: LBA Write. A block of data equal to the LBA transfer size is sent along with the write command to be stored into non-volatile memory. LBA Read. A block of data equal to the LBA transfer size is read from non-volatile memory and transferred to the host. LBA Erase (Also known as TRIM command in Serial ATA protocol). This is a command only transfer from the host that tells the SSD that the block of data is no longer needed by the host.
A typical NAND flash architecture is shown in FIG. 2. FIG. 2 illustrates a single die and a NAND flash package can incorporate multiple such dies. A NAND die is essentially organized as multiple blocks and each block contains multiple pages. Pages can be written sequentially within a block and accessed randomly for reads. Pages cannot be overwritten without erasing an entire block containing those pages. Pages can be written only if a block has been erased earlier. To build a large capacity drive, a plurality of NAND devices is connected to a flash controller. The plurality of devices can be individually accessed by the flash controller.